数据集传输
除了公共数据集之外,支持用户上传、维护自己的私有数据集。小于500M的数据集可以在网页端操作,大于500M的,虽然也可以多次上传,但强烈建议使用这里的方法。
方法一
由于数据集实质是共享存储上的目录,通过docker的挂载卷,在任务内呈现,那么,也就可以通过启动debug任务的方式,对这个目录进行读写。注意,要求在启动前先在网页端操作挂载该数据集。
debug有两种方式,其中之一是ssh调试,即在平台上开启一个远程虚拟主机,然后可以ssh登录(使用秘钥)。有很多ssh工具支持上传、下载远程主机的文件,同样适用于这里。如scp,sftp。
1、启动一个与数据集关联的0卡debug任务:选择 项目——数据集——编辑参数
在打开的界面中点击 “添加数据集”,选择需要修改的数据集(即上传内容拟存放目录)。
2、选择 “新建任务”
在打开界面中,GPU类型选择debug,GPU个数选择0,启动命令 sleep 3h (运行3小时后结束),保存并运行任务
等待任务变为运行状态后,点击查看,在打开界面中有如何通过ssh登录的说明
上图示例中,登录的ip地址为202.38.95.226,端口为13327
若使用powershell/bash等命令行登录,直接使用上述说明。
若使用xshell工具登录,则输入命令 ssh root@202.38.95.226 13327
弹出窗口中,Public key选项 通过浏览,选择下载到本地的key文件后登录
3、开始上传
既然能登录,也就可以使用scp命令传输,如
就完成了将本地文件上传到bitahub中名为test_dataset3
的私有数据集下。
或者使用sftp工具:
这种方式比较推荐:1)有可视化操作;2)可以支持断点续传。
总结下方法一:
(1)借助ssh的能力进行上传;
(2)需要在平台上开启debug任务;
(3)因为debug任务有时长限制,一次只能传3小时。
如果你的数据集在3小时内传不完,那么:
(1)断点续传
(2)尝试下面的方法二;
(3)使用账户关联邮箱,发邮件到 icpadmin@iai.ustc.edu.cn 请管理员帮您开一个更长时限的容器。只在工作日响应,且非实时。
方法二
如果你的数据集比较大,你有必要了解下rclone(https://rclone.org/ )。
rclone可以帮你同步远程主机的数据(双向的),支持多种操作系统(windows、mac、linux),多种协议(sftp、ftp等),实乃居家必备之良品。
1、安装rclone
根据系统类型,按照这里的说明(https://rclone.org/downloads/ )进行安装。
2、配置
如果你是在平台上创建了debug任务,那么使用的协议是sftp。
参考这里进行配置:https://rclone.org/sftp/
注意,在配置时不输入密码,而是秘钥文件路径。
配置完成后,可以运行:rclone lsd $remote_name:/ 查看远程主机目录。
3、拷贝
参考:https://rclone.org/commands/rclone_copy/
rclone copy -P source:sourcepath dest:destpath
类似这样:
上面的例子中,将本地的路径,拷贝到一个名为“myssh"的远程主机中的路径(参考前一步的配置),使用-P选项来显示进度,使用了--transfers 10来指定同时启动10个线程进行传输。
你可以探索更多的设置和命令(如rclone sync)。
4、使用ftp作为中介
假如使用上述方法进行传输较慢,那么可以借助ftp进行中转。
我们此前提供了下列ftp:
地址:202.38.95.226 端口号:10011 用户名:ftpuser 密码:ts66ch
它也依然可用,而且在内网有另一个地址:
地址:10.10.8.17 端口号:10021
这两个地址是同一个ftp服务器,只是内外网IP、端口不同而已。
有下列的方法可供参考:
(1)先将数据传输到ftp
(2)启动debug任务
(3)在debug任务的容器(远程主机)中,利用ftp命令获取文件(注意要使用内网地址)。此时,因为机器都在机房内网,预期传输速率是较高的。
如果你觉得ftp比较难用,也同样可以借助rclone工具。
同样地,需要进行安装(要使用新版的rclone)、配置(选择ftp协议)
如:
wget -c https://downloads.rclone.org/v1.62.2/rclone-v1.62.2-linux-amd64.deb
dpkg -i rclone-v1.62.2-linux-amd64.deb
# 完成安装
rclone config
# ...根据提示输入
# 假设完成了一个名叫myftp的配置
# 输出如下:
Configuration complete.
Options:
- type: ftp
- host: 10.10.8.17
- user: ftpuser
- port: 10021
- pass: *** ENCRYPTED ***
Keep this "myftp" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d>
Current remotes:
Name Type
==== ====
myftp ftp
# 使用 rclone lsd命令试着查看下目录
rclone lsd myftp:/
# 这里应该要列出ftp上的目录
然后就可以使用rclone copy 进行数据拷贝了。
注意:ftp服务器是对所有用户开放可见的,并且会定期清理。